package com.ch02.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * @ClassName WebConfig
 * @Description 取代web.xml, 主要用于设置相关的配置以及DispatcherServlet的映射
 * @Author Kx
 * @Date 2025/5/9 11:30
 * @Version 1.0
 */
@Configuration
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    /**
     * @author: kx
     * @date: 2025/5/9 11:32
     * @return java.lang.Class<?>[]
     * @description: 设置主配置类
    */
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    /**
     * @return java.lang.Class<?>[]
     * @author: kx
     * @date: 2025/5/9 11:32
     * @description: 设置MVC配置类
     * 在web环境下通过DispatcherServlet初始化唯一的IOC容器
     */
    @Override
    protected Class<?>[] getServletConfigClasses() {
        // 因为主配置类配置了MVC配置了,所以直接配置主配置类就可以设置MVC配置类
        return new Class[]{RootConfig.class};
    }

    /**
     * @author: kx
     * @date: 2025/5/9 11:35
     * @return java.lang.String[]
     * @description: 设置DispatcherServlet的映射路径
    */
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}
